﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Silvermoon.Controls
{
    /// <summary>
    /// Specifies methods and properties a control must implement to receive mouse specific information.
    /// </summary>
    public interface IMouseEventBehavior
    {
        void OnMouseDown(MouseDownEventArgs e);
        void OnMouseUp(MouseUpEventArgs e);
        void OnMouseClick(MouseClickEventArgs e);
        void OnMouseMove(MouseMoveEventArgs e);
        void OnGotFocus();
        void OnLostFocus();

        bool IsFocused { get; }

        ///// <summary>
        ///// Same as OnMouseMove but occurs even if the mouse is actually not pressed due to simulated accelleration.
        ///// </summary>
        //void OnWheel(WheelEventArgs e);
    }
}
